const express = require('express');
const app = express();
app.listen(9000, () => {
  console.log('服务器9000启动成功');
});

// 浏览器中输入地址 http://localhost:9000/request/params?query_name=query
app.get('/request/:params_name', (req, res) => {
  // app：Express实例
  console.log(req.app); // Express实例
  // protocol：请求协议
  console.log(req.protocol); // http
  // hostname：主机地址
  console.log(req.hostname); // localhost
  // ip：IP地址
  console.log(req.ip); //::1
  // baseUrl：URL路径
  console.log(req.baseUrl); //
  // originalUrl：原始URL路径
  console.log(req.originalUrl); // /request/params?query_name=query
  // path：请求路径
  console.log(req.path); // /request/params
  // route：匹配路由
  console.log(req.route); // Route实例
  // query：请求参数 ?xxx=yyy
  console.log(req.query); // { query_name: 'query' }
  // params：请求参数 /xxx/yyy
  console.log(req.params); // { params_name: 'params' }
  // body：请求实体POST
  console.log(req.body); // undefined(传入的实体为json数据，此时json数据未被解析，内置中间件json可解析json数据)
  // cookies：Cookies
  console.log(req.cookies); // undefined
  // accepts()：可接受文档类型
  console.log(req.accepts()); // ['text/html', 'application/xhtml+xml', ...]
  console.log(req.acceptsCharsets()); // [ '*' ]
  console.log(req.acceptsEncodings()); // [ 'gzip', 'deflate', 'br', 'identity' ]
  console.log(req.acceptsLanguages()); // [ 'zh-CN', 'zh' ]
  // ...
});

// 浏览器中输入地址 http://localhost:9000/response
app.get('/response', (req, res) => {
  // app：Express实例
  // append()：追加请求头
  // set()：设置请求头，原来的请求头被覆盖
  // get()：获取请求头
  // status()：设置响应状态码
  // type()：设置Content-Type的MIME类型
  // 以下方法用于向客户端发送响应结果并结束响应
  // send()：响应指定数据
  // json()：响应指定Json数据
  // jsonp()：响应指定Jsonp数据
  // download()：响应指定路径文件
  // sendFile()：响应指定路径文件，自动根据文件extension设定Content-Type
  // render()：渲染视图，渲染后字符串传递给callback
  // redirect()：重定向请求，并设置状态码为302
  // end()：结束响应
  // ...
});